package com.strange3.utils.chapters.transitions
{
	import com.strange3.utils.activables.ActivableComponentEvent;
	import com.strange3.utils.chapters.SimpleChapter;
	import com.strange3.utils.moviebased.MovieEvent;
	
	/**
	 * Klasa dla typow transition sluzaca do wymuszenia odegrania filmu
	 * do konca
	 * @author root
	 * 
	 */
	public class PlayFullTransition extends Transition
	{
		public function PlayFullTransition()
		{
			super();
		}
		
		override public function activate(c:SimpleChapter):void {
		
			c.play();			
		}
		
		override public function deactivate(c:SimpleChapter):void {
			
			// sprawdzamy czy chapter już przypadkiem w miedzyczasie nie zostal odtworzony
			if(!c.played) {
				
				// nie, wiec czekamy do tego momentu
				c.addEventListener(MovieEvent.MOVIE_COMPLETE, onMovieComplete);
			} else {
				
				// tak, od razu wysylamy event informujacy reszte swiata o tym
				this.dispatchEvent(new ActivableComponentEvent(ActivableComponentEvent.DEACTIVATED));
			}
		} 
		
		private function onMovieComplete(e:MovieEvent):void {
			this.dispatchEvent(new ActivableComponentEvent(ActivableComponentEvent.DEACTIVATED));
		}
		
	}
}